//导入请求js
import {
  request
} from '../../request/index.js'
import regeneratorRuntime from '../../lib/runtime/runtime';
// pages/category/index.js
Page({


  /**
   * 页面的初始数据
   */
  data: {
    //左侧菜单数据
    leftMenuList: [],
    //右侧商品分类
    rightContent: [],
    //左侧菜单选中的索引
    currentIndex: 0,
    scrollTop: 0
  },
  Cates: [],
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    /*

      使用存储数据
      1.先判断本地存储中有没有旧数据并且有没有过期
      {time:Date.now(),data:[...]}
      2.没有旧数据，直接发请求
      this.getCategoryList() 
      3.有旧数据，判断是否过期，没过期就是用，过期就重新发请求
    */
    const Cates = wx.getStorageSync("cates")
    if (!Cates) {
      //不存在旧数据,直接发送求
      this.getCategoryList()
    } else {
      //判断当前时间和设置的时间是否超过设定的期限
      if (Date.now() - Cates.time > 1000 * 60 * 60) {
        //过期了，重新发送请求
        this.getCategoryList()
      } else {
        //未过期
        this.Cates = Cates.data
        //构造左边大菜单数据
        let leftMenuList = this.Cates.map(v => v.cat_name);
        //构造右边商品数据
        let rightContent = this.Cates[0].children;
        this.setData({
          leftMenuList,
          rightContent
        })
      }
    }
  },
  //获取分类数据
  //async处理异步
  async getCategoryList() {
    const res = await request({
      url: '/categories'
    })
    console.log(res)
    // this.Cates = res.data.message;
    this.Cates = res;
    //把数据存在本地中
    wx.setStorageSync("cates", {
      time: Date.now(),
      data: this.Cates
    })
    //构造左边大菜单数据
    let leftMenuList = this.Cates.map(v => v.cat_name);
    //构造右边商品数据
    let rightContent = this.Cates[0].children;
    this.setData({
      leftMenuList,
      rightContent
    })
  },

  //切换菜单
  changeMenu(e) {
    // console.log(e)
    //获取当前点击的索引值
    let {
      index
    } = e.currentTarget.dataset
    // console.log(index)
    //把这个索引值赋给data中currentIndex
    //重新获取分类数据
    let rightContent = this.Cates[index].children;
    this.setData({
      currentIndex: index,
      rightContent,
      //让右侧商品的滚动条从0开始
      scrollTop: 0
    })
  },
  onPullDownRefresh() {
    wx.showLoading({
      title: '加载中',
      duration: 1000,
      mask:true
    });
    setTimeout(()=>{
      wx.stopPullDownRefresh()
      wx.hideLoading();
    },1000)
  }
})